class IncentivosController < ApplicationController

  def condicoes
    @incentivo = Incentivo.find(params[:id])
    @tipos = {}
    @incentivo.precondicoes.collect { |pre| (@tipos[pre.tipo_precondicao] ||= []) << pre }
    @pleito = Pleito.new(:incentivo => @incentivo)
    # OPTIMIZE group_by
  end

  # GET /incentivos
  # GET /incentivos.xml
  def index
    @incentivos = Incentivo.find(:all, :order => :descricao)

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @incentivos }
      format.fxml { render :fxml => @incentivos.to_fxml(:only => [:id, :mnemonic, :descricao]) }
    end
  end

  # GET /incentivos/1
  # GET /incentivos/1.xml
  def show
    @incentivo = Incentivo.find(params[:id])
    @areas = @incentivo.areas(:select => :descricao)
    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @incentivo }
    end
  end

  # GET /incentivos/new
  # GET /incentivos/new.xml
  def new
    @incentivo = Incentivo.new
    @areas = Area.find(:all, :order => :descricao)

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @incentivo }
    end
  end

  # GET /incentivos/1/edit
  def edit
    @incentivo = Incentivo.find(params[:id])
    @areas = Area.find(:all, :order => :descricao)
  end

  # POST /incentivos
  # POST /incentivos.xml
  def create
    @incentivo = Incentivo.new(params[:incentivo])

    respond_to do |format|
      if @incentivo.save
        flash[:notice] = 'Incentivo cadastrado com sucesso.'
        format.html { redirect_to(@incentivo) }
        format.xml  { render :xml => @incentivo, :status => :created, :location => @incentivo }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @incentivo.errors, :status => :unprocessable_entity }
      end
    end
  end

  # PUT /incentivos/1
  # PUT /incentivos/1.xml
  def update
    @incentivo = Incentivo.find(params[:id])

    respond_to do |format|
      if @incentivo.update_attributes(params[:incentivo])
        flash[:notice] = 'Incentivo atualizado com sucesso.'
        format.html { redirect_to(@incentivo) }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @incentivo.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /incentivos/1
  # DELETE /incentivos/1.xml
  def destroy
    @incentivo = Incentivo.find(params[:id])
    @incentivo.destroy

    respond_to do |format|
      format.html { redirect_to(incentivos_url) }
      format.xml  { head :ok }
    end
  end
end
